]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Add shell_write_string_to_stream()
authorOwen W. Taylor <otaylor@fishsoup.net>
Wed, 12 May 2010 21:19:20 +0000 (17:19 -0400)
committerOwen W. Taylor <otaylor@fishsoup.net>
Fri, 21 May 2010 04:18:45 +0000 (00:18 -0400)
Add a helper function to write a string as UTF-8 to a GOutputStream.
The signature of GOutputStream:

 gboolean g_output_stream_write_all (GOutputStream *stream,
                                     const void *buffer,
                                     gsize count,
                                     gsize *bytes_written,
                                     GCancellable *cancellable,
                                     GError **error);

Can't currently be handled by GJS.

https://bugzilla.gnome.org/show_bug.cgi?id=618189

src/shell-global.c
src/shell-global.h

index bc99b43ad1f949fe78af51bb00dc31c75a398be8..531ef2c4444e17bd07bd415e049feed6e1ae8667 100644 (file)
@@ -1303,6 +1303,26 @@ shell_popup_menu (GtkMenu *menu, int button, guint32 time,
                   button, time);
 }
 
+/**
+ * shell_write_string_to_stream:
+ * @stream: a #GOutputStream
+ * @str: a UTF-8 string to write to @stream
+ * @error: location to store GError
+ *
+ * Write a string to a GOutputStream as UTF-8. This is a workaround
+ * for not having binary buffers in GJS.
+ *
+ * Return value: %TRUE if write succeeded
+ */
+gboolean
+shell_write_string_to_stream (GOutputStream *stream,
+                              const char    *str,
+                              GError       **error)
+{
+  return g_output_stream_write_all (stream, str, strlen (str),
+                                    NULL, NULL, error);
+}
+
 /**
  * shell_global_get_current_time:
  * @global: A #ShellGlobal
index 696b439dfd75bfc1dfff55e0fc35aa41176e7982..480d47b56a908716aad92de797700b8e23b8d547 100644 (file)
@@ -92,6 +92,10 @@ ClutterModifierType shell_get_event_state (ClutterEvent *event);
 void shell_popup_menu (GtkMenu *menu, int button, guint32 time,
                        int menu_x, int menu_y);
 
+gboolean shell_write_string_to_stream (GOutputStream *stream,
+                                       const char    *str,
+                                       GError       **error);
+
 guint32 shell_global_get_current_time (ShellGlobal *global);
 
 GAppLaunchContext *shell_global_create_app_launch_context (ShellGlobal *global);